package com.kk.service;

import com.kk.model.Menu;
import com.kk.model.User;
import com.kk.util.request.Reqbody;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

public interface UserService {

    User findUserByName(String name);

    /**
     * 根据user获取登录用户的用户信息和有权限的菜单列表
     *
     * @param user
     * @return
     */
    Map<String, Object> getLoginUserAndMenuInfo(User user);

    /**
     * 根据user获取该用户下的菜单列表
     *
     * @param user
     * @return
     */
    List<Menu> getMenuListByUser(User user);

    /**
     * 获取所有的用户
     *
     * @return
     */
    List<User> getAllUser();

    List<User> findByUsernameLike(String name);

//    /**
//     * 验证token是否有效
//     *
//     * @param token
//     * @return
//     */
//    boolean authToken(String token);

    /**
     * 非标准分页查询
     * @param page
     * @param size
     * @return
     */
    Page<User> findUserNoCriteria(Integer page, Integer size);

    /**
     * 根据条件condition查询
     * @return
     */
    Page<User> findUserByCondition(Reqbody reqbody);
}
